const Joi = require('joi');

// 用户注册验证规则
const registerSchema = Joi.object({
  username: Joi.string()
    .min(3)
    .max(30)
    .required()
    .messages({
      'string.min': '用户名至少需要3个字符',
      'string.max': '用户名不能超过30个字符',
      'any.required': '用户名是必填项'
    }),
  
  password: Joi.string()
    .pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/)
    .required()
    .messages({
      'string.pattern.base': '密码必须包含至少8个字符，至少一个大写字母，一个小写字母和一个数字',
      'any.required': '密码是必填项'
    }),
    
  email: Joi.string()
    .email()  
    .required()
    .messages({
      'string.email': '请输入有效的邮箱地址',
      'any.required': '邮箱是必填项'
    }),
    
  role: Joi.string()
    .valid('user', 'admin', 'superadmin')
    .default('user')
});

// 登录验证规则
const loginSchema = Joi.object({
  username: Joi.string().required(),
  password: Joi.string().required()
});

module.exports = {
  registerSchema,
  loginSchema
};